1. The Field of the Invention
The present invention relates to redirecting requests for content that is stored on a server. More specifically, the present invention relates to methods and computer program products for using a front-end server in transparently redirecting a request for content such that a client system is unaware of the redirection.
2. The Prior State of the Art
At times, a server may need to redirect requests for content. Redirection may occur because (i) the content has moved, either temporarily or permanently, to another server, (ii) multiple representations of the content are available and the client should choose from them, (iii) the request should be made through a proxy, and etc. In the prior art, servers send redirect responses to the client system and the client system is responsible for reissuing the request for content to the server identified in the redirect response. However, sending redirect responses to a client may not provide any benefit in some systems.
For example, some systems include a proxy server that provides a single point of access to content stored on back end servers. The back end server is a server in the ordinary sense, storing content that clients may access. The proxy or front end server provides an access point for the content that is stored on one or more back end servers. From the client's perspective, it appears as if the front end server is the source for all of the content stored at the back end servers. However, clients are not necessarily precluded from accessing back end servers directly.
Making requests for content through front-end servers provides several benefits. From time to time, content stored on one back-end server may be moved to another. If a client has been accessing the moved content directly, the client must alter future requests to reflect the new location of the content. Although redirect responses from the old back-end server may help inform clients that the content has moved, redirection requires additional processing by the client and leads to slower response times for the requested content. Also, redirect responses from back-end servers may be provided on a temporary basis. Requests occurring after a certain time period may indicate simply that the requested content is not available.
Front-end servers also facilitate local caching at the client system. Frequently, content, such as email content, is cached at the client system to improve performance. Only changes made to the email content is exchanged between the client and back-end server. If email content is moved from one back-end server to another, the local caching is invalidated and the full email content must be exchanged. By using a front-end server, all content appears to come from a single source, regardless of the particular back-end server that actually stores the content. Any movement of content from one back-end server to another is transparent to the client. As a result, local caching remains valid even after content has been moved.
However, redirection, as taught in the prior art, introduces problems when practiced in a front-end server system. First, the front-end server is supposed to make the storage of content at back-end servers transparent to the client. In receiving a redirect response because content has moved from one back-end server to another, the client is made aware of back-end server storage details and transparent access to the content is eliminated. Furthermore, because the client made the request to the front-end server, a redirect response from a back-end server that is unknown to the client is likely to cause substantial confusion. Even more troublesome, certain back-end servers may require that all access occur through a front-end server. In these circumstances, the client would be redirected to a back-end server that the client is unable to access. Therefore, the prior art lacks methods and computer program products for using a front-end server in transparently redirecting a request for content such that a client system is unaware of the redirection.